/**
 * 版权所有@北京博创联动科技有限公司。未经许可，不得擅自复制、传播
 */
package com.uptech.homer.itf;

import com.uptech.homer.beans.CanInfo;

import java.util.List;
import java.util.Map;

/**
 * 车身CAN
 *
 * @author lei
 */
public interface ICanInfo {

    /**
     * 电机转速(R/MIN)
     *
     * @return
     */
    public int getMotorRpm();

    /**
     * 电机温度
     *
     * @return
     */
    public double getMotorTemp();

    /**
     * 车速(KM/H)
     *
     * @return
     */
    public double getSpeed();

    /**
     * 总里程(KM)
     *
     * @return
     */
    public double getTotalMileage();

    /**
     * 剩余电量(%)
     *
     * @return
     */
    public double getSOC();

    /**
     * 母线电压(V)
     *
     * @return
     */
    public double getVoltage();

    /**
     * 母线电流(A)
     *
     * @return
     */
    public double getElectric();

    /**
     * 续航里程（KM）
     *
     * @return
     */
    public double getPowerMileage();

    /**
     * 获取车身CAN原始数据信息
     *
     * @return
     */
    public List<CanInfo.Group> getCanInfo();

    /**
     * 获取车身CAN信息内包含的报警信息
     *
     * @return
     */
    public List<CanInfo.Group> getAlarmInfo();

    /**
     * 获取ACC状态
     *
     * @return
     */
    public int getACCState();

    /**
     * 电池包温度
     *
     * @author lei
     */
    public static interface IBatteryTemp {

        /**
         * 获取电池包实际数据
         *
         * @return
         */
        public Map<String, Object> getTempData();
    }

    /**
     * 电池包电压序列
     *
     * @author lei
     */
    public static interface IBatteryVol {

        /**
         * 获取电池包实际数据
         *
         * @return
         */
        public Map<String, Object> getVolData();
    }
}
